// samsting : this file is auto create.

#ifndef ALIYUN_Ecs_DescribeEipAddressesResponse_H_
#define ALIYUN_Ecs_DescribeEipAddressesResponse_H_

#include "core/acs_response.h"

namespace aliyun { namespace Ecs {

class DescribeEipAddressesResponse : public AcsResponse {
public:
  DescribeEipAddressesResponse();

  class EipAddress {
    friend class DescribeEipAddressesResponse;
  public:

    class LockReason {
      friend class DescribeEipAddressesResponse;
      friend class EipAddress;
    public:
      const string& GetLockReason(void) const;
    private:
      string LockReason_;
    }; // LockReason 

    const std::vector<LockReason>& GetOperationLocks(void) const;
    const string& GetRegionId(void) const;
    const string& GetIpAddress(void) const;
    const string& GetAllocationId(void) const;
    const string& GetStatus(void) const;
    const string& GetInstanceId(void) const;
    const string& GetBandwidth(void) const;
    const string& GetInternetChargeType(void) const;
    const string& GetAllocationTime(void) const;
    const string& GetInstanceType(void) const;
  private:
    std::vector<LockReason> OperationLocks_;
    string RegionId_;
    string IpAddress_;
    string AllocationId_;
    string Status_;
    string InstanceId_;
    string Bandwidth_;
    string InternetChargeType_;
    string AllocationTime_;
    string InstanceType_;
  }; // EipAddress 

  const std::vector<EipAddress>& GetEipAddresses(void) const;
  int  GetTotalCount(void) const;
  int  GetPageNumber(void) const;
  int  GetPageSize(void) const;

private:
  std::vector<EipAddress> EipAddresses_;
  int    TotalCount_;
  int    PageNumber_;
  int    PageSize_;

protected:
  const char* BaseKey(void);
  void         UnmarshallerMap(std::map<string, string>& response_map);

};

} } // namespace aliyun { namespace Ecs {

#endif // #ifndef ALIYUN_Ecs_DescribeEipAddressesResponse_H_

// end of file 
